package com.ezandroid.library.network.http.parser;


import android.util.Log;

import org.json.JSONException;

import java.nio.charset.Charset;

/**
 * 抽象的JSON数据解器
 *
 * @author markmjw
 * @date 2014-06-16
 */
public abstract class BaseJsonParser<T> implements IParser<T> {

    @Override
    public T parse(byte[] data) {
        try {
            String content = new String(data, Charset.forName("UTF-8"));
            return parseJson(content);
        } catch (JSONException e) {
            Log.e("Parse error.", Log.getStackTraceString(e));
        }
        return null;
    }

    /**
     * 解析Json数据
     *
     * @param json
     * @return
     * @throws JSONException
     */
    protected abstract T parseJson(String json) throws JSONException;
}
